/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package nexus.adec;

import control.*;
import java.util.ArrayList;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIParameter;
import javax.faces.context.*;
import javax.faces.el.VariableResolver;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;
/**
 *
 * @author juampi
 */
public class EditorEspacio {
    private EspacioCurso curso;
    private ArrayList<SelectItem> materiasDelDocente;
    private ArrayList<SelectItem> modalidades;
    public EditorEspacio(){
       
    }
    public void setCurso(EspacioCurso curso){
        this.curso=curso;
    }
    public EspacioCurso getCurso(){
         FacesContext facesContext = FacesContext.getCurrentInstance();
        VariableResolver vr = facesContext.getApplication().getVariableResolver();
        UserBean user = (UserBean)vr.resolveVariable(facesContext, "userBean");
        obtenerDatosEspacio(user.getCodigoCurso(), user.getId());
        return curso;
    }
    public String guardarCambios(){
        FacesContext facesContext = FacesContext.getCurrentInstance();
        FacesMessage message;
        if(!GestorEspacioDB.getInstance().actualizarCurso(curso)) {
            message = MessageFactory.createMessage(FacesMessage.SEVERITY_ERROR,"errorEdicionEspacio","");
        } else {
            message = new FacesMessage("Se guardo los cambios correctamente", "Se guardo los cambios correctamente");
        }
        FacesContext.getCurrentInstance().addMessage(null, message);
        return "ok";
    }
    public void editar(ActionEvent event){
       /* Map session = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
        UIParameter component = (UIParameter) event.getComponent().findComponent("codigoEditar");
        String codigoCurso = component.getValue().toString();
        FacesContext facesContext = FacesContext.getCurrentInstance();
        VariableResolver vr = facesContext.getApplication().getVariableResolver();
        UserBean user = (UserBean)vr.resolveVariable(facesContext, "userBean");
        obtenerDatosEspacio(codigoCurso, user.getId());*/
    }
    public void obtenerDatosEspacio(String codigoCurso,String userId){
        EspacioCurso rec=GestorEspacioDB.getInstance().obtenerCurso(codigoCurso,userId);
        setCurso(rec);
    }
    public void eliminar(ActionEvent event){
        Map session = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
        UIParameter component = (UIParameter) event.getComponent().findComponent("codigoEliminar");
        String codigoCurso = component.getValue().toString();
        GestorEspacioDB.getInstance().eliminarCurso(codigoCurso);
    }
    public ArrayList<SelectItem> getMaterias(){
        materiasDelDocente=new ArrayList<SelectItem>();
        FacesContext facesContext = FacesContext.getCurrentInstance();
        VariableResolver vr = facesContext.getApplication().getVariableResolver();
        UserBean user = (UserBean)vr.resolveVariable(facesContext, "userBean");
        ArrayList<Materia> mts=GestorEspacioDB.getInstance().listarMateriasDocente(user.getId());
        for(Materia m : mts){
            materiasDelDocente.add(new SelectItem(m.getCodigoMateria(),m.getNombreMateria()));
        }
        return materiasDelDocente;
    }
    public ArrayList<SelectItem> getModalidades(){
        modalidades=new ArrayList<SelectItem>();
//        ArrayList<Modalidad> mds=GestorEspacioDB.getInstance().listarModalidades();
 //       for(Modalidad m : mds){
 //           modalidades.add(new SelectItem(m.getCodigoModalidad(),m.getNombreModalidad()));
  //      }
        return modalidades;
    }
}
